var ds_absence_unconfirmed = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
						url : 'absence_unconfirmedAbsences_list.action' 	}),
			reader : new Ext.data.JsonReader({
						root : 'absences',
						totalProperty : 'totalCount'
					}, 
					[{	name : 'absencerId',	    mapping : 'userId',		       type : 'long'    }, 
					 {  name : 'userName',   	    mapping : 'user.userName',	   type : 'string'  }, 
					 {  name : 'dateHalf',    	    mapping : 'dateHalf',          type : 'string'	}, 
					 {  name : 'type',      	    mapping : 'type',       	   type : 'short' 	}, 
					 {  name : 'status',            mapping : 'status',     	   type : 'short' 	},  
					 {  name : 'confirmedStatus',  	mapping : 'confirmedStatus',   type : 'short' 	}, 
					 {  name : 'remark',        	mapping : 'remark',            type : 'string' 	},
					 {  name : 'confirmerName',     mapping :'confirmerName',      type : 'string'  },
					 {  name : 'confirmedTimestamp',mapping :'confirmedTimestamp', type : 'long'  },
					 {  name : 'lastModifierName', 	mapping : 'lastModifierName',  type : 'string'	},  
					 {  name : 'lastModified',		mapping : 'lastModified'		},
					 {  name : 'operation',     	type : 'string' 	}
					 ])
		});

//时间格式转换
function formatTime(value, metadata, record){
	if(null==value){
		return null;
	}else{
		return new Date(value).format('Y-m-d');
	}
}
var createdTimestamp;
var lastModified;
var confirmedTimestamp;
function longToDate(respText){
    lastModified = formatTime(respText.anAbsence.lastModified, "", "");
    createdTimestamp = formatTime(respText.anAbsence.createdTimestamp, "", "");
    confirmedTimestamp= formatTime(respText.anAbsence.confirmedTimestamp, "", "");
}
var sm_checkbox_selectAbsence=new Ext.grid.CheckboxSelectionModel({
	checkOnly :true,
    listeners:{
		rowdeselect:function(sm_checkbox_selectAbsence,rowIndex,record){
			var hd_checker = grid_absence_oper.getEl().select('div.x-grid3-hd-checker');  
		    var hd = hd_checker.first(); 
			if(hd.hasClass('x-grid3-hd-checker-on')){
				hd.removeClass('x-grid3-hd-checker-on'); 
			}
		    /*if(hd != null){ 
		    	if(selections.length != grid_absence_oper.getStore().getCount()){ 
		                //清空表格头的checkBox  
		        	if(hd.hasClass('x-grid3-hd-checker-on')){
		            	hd.removeClass('x-grid3-hd-checker-on');    
					    //x-grid3-hd-checker-on
		                //grid_taskQueryPop.getSelectionModel().clearSelections();
		             }
		         }else{
		             if(grid_absence_oper.getStore().getCount() == 0){ //没有记录的话清空;
		              return;
		             }
		             hd.addClass('x-grid3-hd-checker-on');
		                grid_absence_oper.getSelectionModel().selectAll();
		            }
		        }*/
			}
	}
});
var cm_absence_unconfirmed =new Ext.grid.ColumnModel(
		[ sm_checkbox_selectAbsence,
		  new Ext.grid.RowNumberer(),
		 {header : '用户ID',	   width : 120, dataIndex : 'absencerId',hidden : true,	sortable : true},
		 {header : '用户名',     width : 100, dataIndex : 'userName', sortable : true }, 
		 {header : '缺勤时间', width : 100, dataIndex : 'dateHalf', sortable : true,
		    renderer : function(value, metadata, record) {
				return "<a href = 'javascript:void(0)' id = 'viewAbsence' name='view'"
						+ " onclick=javascript:viewAbsenceWindow('"
						+ record.data.absencerId
						+ "','"
						+ record.data.userName
						+ "','"
						+ record.data.dateHalf + "')>" + value + " </a>";
			}
			
		}, 
	    {header : '缺勤类型',width : 80, dataIndex : 'type', sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 1) {
					return '出差';
				} else {
					return '请假';
				};
			}
		}, 
		{header : '出勤状态', width : 80, dataIndex : 'status',	sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 1) {
					return '缺勤';
				} else {
					return '出勤';
				};
			}
		}, 
		{ header : '确认状态',width : 80, dataIndex : 'confirmedStatus', sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 0) {
					return '未确认';
				} else if (value == 1) {
					return '确认缺勤';
				} else {
					return '确认出勤';
				};
			}
		}, 	{
			header : '最后修改人',
			width : 100,
			dataIndex : 'lastModifierName',
			sortable : true
		},  {
		    header : '最后修改时间',     width : 120, dataIndex : 'lastModified', 
			renderer: function(value, metadata, record){ return formatTime(value, metadata, record);  },
		 sortable : true 
		}, 	
		//{header : '缺勤备注', width : 120, hidden : true, dataIndex : 'remark',	sortable : true	},
		{header : "操作",width : 80, dataIndex : 'operation',
			renderer : function(value, metadata, record) {
			    	return "<a href = 'javascript:void(0)' id = 'confirmAbsences' name='modify' "
						+ "onclick=javascript:confirmAbsencesWindow('"
						+ record.data.absencerId
						+ "','"
						+ record.data.userName
						+ "','"
						+ record.data.dateHalf + "')>确认</a>";
			}
		}
		]);
	
	/** ***************************查看缺勤信息详情窗口 begin********************************/
/************************************查看备注详情  begin ***********************************/
function showRemarkDetail(respText){
	return "<div align=\"center\"><a href='javascript:void(0)'  onclick=javascript:showRemark('" + respText.anAbsence.userId
	 								+ "','"
									+respText.anAbsence.dateHalf+"')>备注详情</a></div>";
}
window.showRemark = function(userId,dateHalf){
    Ext.Ajax.request({
        url: 'absence_viewTheAbsence_view.action',
        method: 'post',
        params: {
            absencerId : userId,
			dateHalf : dateHalf
        },
        success: function(resp, opts){
            var respText = Ext.util.JSON.decode(resp.responseText);
            if (respText.success) {
                var window_remark = new Ext.Window({
                    title: '备注详情',
                    closable: false,
                    width: 600,
                    resizable: false,
                    height: 400,
                    iconCls:"absence",
                    modal: true,
                    constrain: true,
                    closeAction: 'close',
                    layout: 'fit',
                    items: [{
                        xtype: 'htmleditor',
                        enableAlignments: false,
                        enableColors: false,
                        enableFont: false,
                        enableFontSize: false,
                        enableFormat: false,
                        enableLinks: false,
                        enableLists: false,
                        enableSourceEdit: false,
                        readOnly: true,
                        value: respText.anAbsence.remark
                    }],
                    buttons: [{
                        text: '关闭',
                        handler: function(){
                            window_remark.close();
                        }
                    }]
                
                
                }).show();
            }
        },
        failure: function(){
            Ext.Msg.show({
                title: '错误提示',
                msg: '查看失败!',
                buttons: Ext.Msg.OK,
                icon: Ext.Msg.ERROR,
                width: 200
            });
        }
    })
}
/************************************查看备注详情  end ***********************************/
viewAbsenceWindow= function(id, absentName,half) {
	Ext.Ajax.request({
		url : 'absence_viewTheAbsence_view.action',
		method : 'post',
		params : {
			absencerId : id,
			dateHalf : half
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			var type='';
			var status='';
			var confirmStatue='';
			if (respText.anAbsence.type == 1) {
				type= '出差';
			} else {
			    type= '请假';
		 	};
		 	if (respText.anAbsence.status == 1) {
			    status= '缺勤';
			} else {
				status= '出勤';
		    };
		    if(respText.anAbsence.confirmedStatus==0){
		    	confirmStatue='未确认';
		    }else if(respText.anAbsence.confirmedStatus==1){
		    	confirmStatue='确认缺勤';
		    }else {
		    	confirmStatue='确认出勤';
		    }
			if (respText.success) {
				longToDate(respText);
				var window_absence_view = new Ext.Window({
					title : '查看缺勤信息详情',
					width : 600,
					resizable : false,
					autoHeight : true,
					constrain: true,
					closable:false,
					iconCls:"absence",
					modal : true,
					closeAction : 'hide',
					items : [
					/** **********************查看缺勤信息详情表单********************************* */
					new Ext.FormPanel({
						border : false,
						baseCls : 'x-plain',
						bodyStyle : 'padding:5px 5px 0',
						labelAlign : 'right',
						labelWidth : 100,
						defaults : {
							itemCls:'form_text unedit'
						},
						defaultType : 'textfield',
						items : [ {
									fieldLabel : '用户名  ',
									name : 'user.userName',
									readOnly:true,
									value : absentName,
									maxLength : 30
								}, {
									fieldLabel : '缺勤时间  ',
									name : 'dateHalf',
									readOnly:true,
									value : respText.anAbsence.dateHalf,
									maxLength : 30
								}, {
									name : 'type',
									fieldLabel : '缺勤类型  ',
									readOnly:true,
									value : type
								}, {
									name : 'status',
									readOnly:true,
									fieldLabel : '出勤状态  ',
									value : status
								}, {
									name : 'confirmStatue',
									fieldLabel : '确认状态  ',
									readOnly:true,
									value : confirmStatue
								}, {
									fieldLabel : '创建时间  ',
									name : 'createdTimestamp',
									readOnly:true,
									value : createdTimestamp,
									maxLength : 30
								}, {
									fieldLabel : '最后修改人',
									name : 'lastModifierName',
									readOnly:true,
									value : respText.anAbsence.lastModifierName,
									maxLength : 30
								}, {
									fieldLabel : '最后修改时间',
									name : 'lastModified',
									readOnly:true,
									value : lastModified,
									maxLength : 30
								}, {
									fieldLabel : '确认人',
									name : 'confirmerName',
									readOnly:true,
									value : respText.anAbsence.confirmerName,
									maxLength : 30
								}, {
									fieldLabel : '确认时间',
									name : 'confirmedTimestamp',
									readOnly:true,
									value : confirmedTimestamp,
									maxLength : 30
								}, {
									xtype: 'panel',
									fieldLabel : '备注  ',// 实现时注意原记录不可以修改，只可以增加新的备注信息
		                            width: 425,
		                            itemCls: 'clear',
		                            html: showRemarkDetail(respText)
//									name : 'remark',
//									itemCls:'form_long unedit',
//									value : respText.anAbsence.remark,
//									readOnly:true
								}/*,{
									xtype : 'textfield',
									name : 'anAbsence.userId',
									value : respText.anAbsence.userId,
									hidden : true,
									maxLength : 30
								}*/],
						buttons : [{
									text : '关闭',
									type : 'button',
									handler : function() {
										window_absence_view.hide();
									}
								}]
					})
					/** **********************查看缺勤信息详情表单end********************************* */
					]
				});
				window_absence_view.show();
			} else {
				Ext.Msg.alert('查看详情失败');
			}
		},
		failure : function() {
			Ext.Msg.show({
						title : '错误提示',
						msg : '请求查看失败!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200,
						height:300
					});
		}
	});
};
	
/******************************查看缺勤信息详情窗口 end******************************/

/*******************************确认缺勤信息窗口 begin******************************/
 confirmAbsencesWindow=function(id,absentName,half){
	Ext.Ajax.request({
		url:'absence_viewTheAbsence_view.action',
		method:'post',
		params : {
			absencerId : id,
			dateHalf : half
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			var type='';
			var status='';
			var confirmedStatus='';
			if (respText.anAbsence.type == 1) {
				type= '出差';
			} else {
			    type= '请假';
		 	};
		 	if (respText.anAbsence.status == 1) {
			    status= '缺勤';
			} else {
				status= '出勤';
		    };
			//if(respText.anAbsence.confirmedStatus==0){}
			if (respText.success) {
				var window_absence_confirmAbsences = new Ext.Window({
					title : '确认缺勤信息',
					width : 600,
					resizable : false,
					autoHeight : true,
					constrain: true,
					iconCls:"absence_check",
					closable:false,
					modal : true,
					closeAction : 'hide',
					items : [
					/** **********************确认缺勤信息表单********************************* */
					 form_absence_confirmAbsences=new Ext.FormPanel({
						border : false,
						baseCls : 'x-plain',
						bodyStyle : 'padding:5px 5px 0',
						autoWidth:true,
						labelAlign : 'right',
						labelWidth : 100,
						defaults : {
							itemCls:'form_text unedit'
						},
						defaultType : 'textfield',
						items : [ {
									fieldLabel : '用户名  ',
									name : 'user.userName',
									readOnly: true,
									value : absentName,
									maxLength : 30
								}, {
									fieldLabel : '缺勤时间  ',
									name : 'dateHalf',
									readOnly:true,
									value : respText.anAbsence.dateHalf,
									maxLength : 30
								}, {
									name : 'absenceType',
									fieldLabel : '缺勤类型  ',
									readOnly: true,
									value : type
								}, {
									name : 'absentStatues',
									fieldLabel : '出勤状态  ',
									readOnly: true,
									value : status,
									maxLength : 30
								}, {
									xtype : 'combo',
									editable : false,
									name : 'confirmStatue',
									allowBlank : false,
								    emptyText:'未确认',
									store : new Ext.data.SimpleStore({
												data : [//[0, '未确认'], 
												        [1, '确认缺勤'], 
												        [2, '确认出勤']],
												fields : ['value', 'text']
											}),
									fieldLabel : '确认状态  ',
									//value : respText.anAbsence.confirmedStatus,
									mode : 'local',
									triggerAction : 'all',//当触发器被点击时需要执行的操作,此处指加载所有选项。
							    	itemCls:'form_text',
									valueField : 'value',
									displayField : 'text'
								},{
									xtype : 'textfield',
									name:'absencerId',
									value : respText.anAbsence.userId,
									hidden : true,
									maxLength : 30
								}],
						buttons : [{
							text : '保存',
							type : 'submit',
							handler : function() {
								if (!form_absence_confirmAbsences.getForm().isValid())
									return;
								form_absence_confirmAbsences.getForm().submit({
									url :'absence_confirm.action',// 文件路径
									method : 'post',// 提交方法post或get
									params : '',
									success : function(form, action) {
										if (action.result.success) {
											Ext.Msg.show({
												title : '确认成功',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.INFO,
												width : 200
											});
											ds_absence_unconfirmed.load({
														params : {
															start : 0,
															limit : 20
														}
													});
										} else {
											Ext.Msg.show({
												title : '错误提示',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}
									},
									failure : function(form, action) {
										if(action.result.success==false){
											Ext.Msg.show({
												title : '错误提示',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}else if (action.failureType == 'server') {
											Ext.MessageBox.alert('错误', '操作失败 ');
										} else if (action.failureType == 'connect') {
											Ext.Msg.alert('连接错误', '指定路径连接错误!');
										} else if (action.failureType == 'client') {
											Ext.Msg.alert('提示', '数据错误，非法提交');
										} else {
											Ext.MessageBox.alert('警告',
													'服务器数据传输错误');
										}
									}
								});
								window_absence_confirmAbsences.hide();
							}
						}, {
									text : '取消',
									type : 'button',
									handler : function() {
										window_absence_confirmAbsences.hide();
									}
								}]
					})
					/** **********************确认缺勤信息表单end********************************* */
					]
				});
				window_absence_confirmAbsences.show();
			} else {
				Ext.Msg.alert('查看详情失败');
			}
		},
		failure : function() {
			Ext.Msg.show({
						title : '错误提示',
						msg : '请求查看失败!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
		}
	});
};
    
/*******************************确认缺勤信息窗口 end*********************************/

    /*******************************取消缺勤登记窗口 begin*********************************/
var form_absence_eliminate = new Ext.form.FormPanel({
	labelWidth : 70,
	labelAlign : 'right',
	url : 'absence_eliminateAbsence_cancel.action',
	border : false,
	baseCls : 'x-plain',
	bodyStyle : 'padding:5px 5px 0',
	autoWidth:true,
	defaults : {
		itemCls:'form_text',
		msgTarget : 'qtip'//qtip为默认值
	},
	defaultType : 'textfield',
	items : [{
				fieldLabel : '用户名',
				name : 'absentName',
				emptyText : '缺勤人不能为空',
				allowBlank : false,
				maxLength : 30
			}, {
				xtype : 'datefield',
				name : 'startDate',
				emptyText : '日期类型为  年-月-日',
				fieldLabel : '开始日期',
				format : 'Y-m-d',// H:i:s
//				disabledDays : [0, 6],
				allowBlank : false,
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				increment : 30,
				maxLength : 70
			}, {
				xtype : 'datefield',
				name : 'endDate',
				emptyText : '日期类型为  年-月-日',
				fieldLabel : '结束日期',
				format : 'Y-m-d',
//				disabledDays : [0, 6],
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				allowBlank : false
			},  {
				xtype : 'timefield',
				name : 'startHour',
				emptyText : '请选择',
				fieldLabel : '开始时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			},  {
				xtype : 'timefield',
				name : 'endHour',
				emptyText : '请选择',
				fieldLabel : '结束时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
			    increment : 30
			}],
	buttonAlign : 'right',
	minButtonWidth : 60,
	buttons : [{
				text : '取消登记',
				handler : function() {
					if (!form_absence_eliminate.getForm().isValid())
						return;
					form_absence_eliminate.getForm().submit({
								success : function(form, action) {
									if(action.result.success){
											Ext.Msg.show({
												title : '取消登记成功',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.INFO,
												width : 200
											});
									}
									ds_absence_unconfirmed.load({
												params : {
													start : 0,
													limit : 20
												}
											});
								},
								// 提交失败的回调函数
								failure : function(form, action) {
									if(action.result.success==false){
											Ext.Msg.show({
												title : '错误提示',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200,
												fn:function(){
													window_absence_eliminate.show();
												}
											});
									}else if (action.failureType == 'server') {
										Ext.MessageBox.alert('错误', '操作失败 ');
									} else if (action.failureType == 'connect') {
										Ext.Msg.alert('连接错误', '指定路径连接错误!');
									} else if (action.failureType == 'client') {
										Ext.Msg.alert('提示', '数据错误，非法提交');
									} else {
										Ext.MessageBox.alert('警告', '服务器数据传输错误');
									}
								}
							}), window_absence_eliminate.hide();
				}
			}, {
				text : '重置',
				handler : function() {
					form_absence_eliminate.getForm().reset();
				}
			}, {
				text : '取消',
				type : 'button',
				handler : function() {
					window_absence_eliminate.hide();
				}

			}]
});
var window_absence_eliminate = new Ext.Window({
			title : '取消缺勤登记',
			width : 600,
			iconCls:"absence_del",
			resizable : false,
			autoHeight : true,
			constrain: true,
			closable:false,
			modal : true,
			closeAction : 'hide',
			items : [form_absence_eliminate]

		});

 
    /*******************************取消缺勤信息窗口 end*********************************/
/*==================查询某人的缺勤记录 begin ========================*/
var form_absence_searchSomeone = new Ext.form.FormPanel({
	labelWidth : 70,
	labelAlign : 'right',
	url : 'absence_unconfirmedAbsences_list.action',
	border : false,
	baseCls : 'x-plain',
	bodyStyle : 'padding:5px 5px 0',
	autoWidth:true,
	defaults : {
		itemCls:'form_text'
	},
	defaultType : 'textfield',
	items : [
				{
				fieldLabel : '用户名',
				name : 'absentName',
				emptyText : '缺勤人不能为空',
				allowBlank : false
			}/*{
				xtype : 'datefield',
				name : 'startDate',
				// emptyText : '日期类型为 年-月-日',
				fieldLabel : '开始日期',
				format : 'Y-m-d',// H:i:s
				disabledDays : [0, 6],
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				increment : 30,
				maxLength : 70
			}, {
				xtype : 'timefield',
				name : 'startHour',
				// emptyText : '请选择',
				fieldLabel : '开始时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			}, {
				xtype : 'datefield',
				name : 'endDate',
				// emptyText : '日期类型为 年-月-日',
				fieldLabel : '结束日期',
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				format : 'Y-m-d',
				disabledDays : [0, 6]
			}, {
				xtype : 'timefield',
				name : 'endHour',
				// emptyText : '请选择',
				fieldLabel : '结束时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			}*/],
	buttonAlign : 'right',
	minButtonWidth : 60,
	buttons : [{
		text : '查询',
		type : 'submit',
		handler : function() {
		if (!form_absence_searchSomeone.getForm().isValid())
			return;
			form_absence_searchSomeone.getForm().submit({
				method : 'post',
				params : '',
				success : function(form, action) {
					if (action.result.success) {
						Ext.Msg.show({
							title : '查询成功',
							msg : action.result.errorMessage,
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.INFO,
							width : 200
						});
						ds_absence_unconfirmed.baseParams =
							  form_absence_searchSomeone.getForm().getValues();
						ds_absence_unconfirmed.load({ params : { start : 0, limit : 20 }});
					} else {
						Ext.Msg.show({
									title : '错误提示',
									msg : action.result.errorMessage,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR,
									width : 200
								});
					}
					window_absence_searchSomeone.hide();
				},
				failure : function(form, action) {
					if (action.result.success==false){
						Ext.Msg.show({
							title : '操作提示',
							msg : action.result.errorMessage,
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR,
							width : 200,
							fn:function(){
							window_absence_searchSomeone.show();
						}
						});
					}else if (action.failureType == 'server') {
						Ext.MessageBox.alert('错误', '操作失败 ');
					} else if (action.failureType == 'connect') {
						Ext.Msg.alert('连接错误', '指定路径连接错误!');
					} else if (action.failureType == 'client') {
						Ext.Msg.alert('提示', '数据错误，非法提交');
					} else {
						Ext.MessageBox.alert('警告', '服务器数据传输错误');
					}
					window_absence_searchSomeone.hide();
				}
				
				});
			
		}
			// }
		}, {
		text : '重置',
		handler : function() {
			form_absence_searchSomeone.getForm().reset();
		}
	}, {
		text : '取消',
		type : 'button',
		handler : function() {
			window_absence_searchSomeone.hide();
		}

	}]
});
var window_absence_searchSomeone = new Ext.Window({
	title : '按用户操作',
	width : 320,
	height : 440,
	resizable : false,
	autoHeight : true,
	constrain: true,
	modal : true,
	iconCls:"absence_search",
	closable:false,
	closeAction : 'hide',
	items : form_absence_searchSomeone

});

/*==================查询某人的缺勤记录 end ========================*/
var btn_absence_eliminate = new Ext.Button({
			text : '取消缺勤登记',
			region : 'left',
			style : '宋体',
			iconCls:"absence_del",
			handler : function() {
	            form_absence_eliminate.getForm().reset();
				window_absence_eliminate.show();
			}
		});
var btn_searchSomeone_absence = new Ext.Button({
	text : '按用户操作',
	region : 'left',
	iconCls:"absence_operate",
	style : '宋体',
	handler : function() {
		form_absence_searchSomeone.getForm().reset();
		window_absence_searchSomeone.show();
	}
});
var btn_allAbsence_absence = new Ext.Button({
	text : '列出所有未确认',
	iconCls:"absence_all",
	region : 'left',
	style : '宋体',
	handler : function() {
	   ds_absence_unconfirmed.baseParams = null;
	   ds_absence_unconfirmed.load({
		   params:{
		      start:0,
		      limit:20,
		      absentName:''
	   }
	   });
	}
});
var btn_confirmAbsences_absence = new Ext.Button({
	text : '确认选中为缺勤',
	region : 'left',
	iconCls:"absence_check",
	style : '宋体',
	handler : function() {
		selections=grid_absence_oper.getSelectionModel().getSelections();
	    if(selections.length==0||selections.length < 0){
	    	Ext.Msg.show({
					title : '信息提示',
					msg : '请选中要确认的记录',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
				});
			return;
		}else if(selections.length>0){
			for(var i=0;i<selections.length;i++){
					abId[i]=selections[i].get("absencerId"); 
				 	abDf[i]=selections[i].get("dateHalf");
			}
		Ext.Ajax.request({
		url:'absence_listConfirmAbsences_confirm.action',
		method:'post',
		params : {
			abId:abId,
			abDf:abDf,
			confirmStatue:'确认缺勤'
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			if (respText.success){
			Ext.Msg.show({
					title : '确认成功',
					msg : respText.errorMessage,
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
				});
//				grid_absence_oper.reconfigure(ds_absence_unconfirmed,cm_absence_unconfirmed);//重新渲染数据
				ds_absence_unconfirmed.load({
				  	 params:{
						 start:0,
						 limit:20,
					     absentName:''
					 }
				});
			} else if(respText.success==false){
				Ext.Msg.show({
					title : '错误提示',
					msg : respText.errorMessage,
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.ERROR,
					width : 200
				});
			}
		},
		failure : function() {
			 if (respText.failureType == 'server') {
				Ext.MessageBox.alert('错误', '操作失败 ');
			} else if (respText.failureType == 'connect') {
				Ext.Msg.alert('连接错误', '指定路径连接错误!');
			} else if (respText.failureType == 'client') {
				Ext.Msg.alert('提示', '数据错误，非法提交');
			} else {
				Ext.MessageBox.alert('警告', '服务器数据传输错误');
			}
		}
		});
		}else{
			return;
		}
	}
});
var btn_confirmAbsencesToAbsence_absence = new Ext.Button({
	text : '确认选中为出勤',
	region : 'left',
	style : '宋体',
	iconCls:"absence_check",
	handler : function() {
		selections=grid_absence_oper.getSelectionModel().getSelections();
	    if(selections.length==0||selections.length < 0){
	    	Ext.Msg.show({
					title : '信息提示',
					msg : '请选中要确认的记录',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
				});
			return;
		}else if(selections.length>0){
			for(var i=0;i<selections.length;i++){
				abId[i]=selections[i].get("absencerId"); 
				abDf[i]=selections[i].get("dateHalf");
			}
			Ext.Ajax.request({
			url:'absence_listConfirmAbsences_confirm.action',
			method:'post',
			params : {
				abId:abId,
				abDf:abDf,
				confirmStatue:'确认出勤'
			},
			success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			if (respText.success){
			Ext.Msg.show({
					title : '确认成功',
					msg : respText.errorMessage,
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
			});
		   ds_absence_unconfirmed.load({
		   		params:{
		      		start:0,
		      		limit:20,
					absentName:''
	   			}
	   	   });
		   } else if(respText.success==false){
				Ext.Msg.show({
					title : '错误提示',
					msg : respText.errorMessage,
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.ERROR,
					width : 200
				});
			}
		   },
			failure : function() {
				 if (respText.failureType == 'server') {
					Ext.MessageBox.alert('错误', '操作失败 ');
				} else if (respText.failureType == 'connect') {
					Ext.Msg.alert('连接错误', '指定路径连接错误!');
				} else if (respText.failureType == 'client') {
					Ext.Msg.alert('提示', '数据错误，非法提交');
				} else {
					Ext.MessageBox.alert('警告', '服务器数据传输错误');
				}
			}
	  });
		}else{
			return;
		}
	}
});
var btn_eliminateOnList_absence=new Ext.Button({
	text : '取消选中缺勤记录',
	region : 'left',
	iconCls:"absence_del",
	style : '宋体',
	handler:function(){
		selections=grid_absence_oper.getSelectionModel().getSelections();
	    if(selections.length==0||selections.length < 0){
	    	Ext.Msg.show({
					title : '信息提示',
					msg : '请选中要取消的记录',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
				});
			return;
		}else if(selections.length>0){
			var flag=0;
			for(var i=1;i<selections.length;i++){
				if(selections[i].get("absencerId")!=selections[i-1].get("absencerId")){
					flag++;
				}
				if(flag>0){
					Ext.Msg.show({
					title : '信息提示',
					msg : '每次只能取消一个人的记录',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.INFO,
					width : 200
					});
					return;
				}
			}
			for (var i = 0; i < selections.length; i++) {
				abId[i] = selections[i].get("absencerId");
				abDf[i] = selections[i].get("dateHalf");
			}
			Ext.Ajax.request({
			url:'absence_eliminateAbsenceByDateHalves_cancel.action',
			method:'post',
			params:{
				abId:abId,
			    abDf:abDf
			},
			success : function(resp, opts) {
				var respText = Ext.util.JSON.decode(resp.responseText);
				if (respText.success){
				Ext.Msg.show({
						title : '取消成功',
						msg : respText.errorMessage,
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO,
						width : 200
					});
				ds_absence_unconfirmed.load({
					params:{
						start:0,
						limit:20
					 }
				});
				} else if(respText.success==false){
					Ext.Msg.show({
						title : '错误提示',
						msg : respText.errorMessage,
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
				}
			},
			failure : function() {
				 if (respText.failureType == 'server') {
					Ext.MessageBox.alert('错误', '操作失败 ');
				} else if (respText.failureType == 'connect') {
					Ext.Msg.alert('连接错误', '指定路径连接错误!');
				} else if (respText.failureType == 'client') {
					Ext.Msg.alert('提示', '数据错误，非法提交');
				} else {
					Ext.MessageBox.alert('警告', '服务器数据传输错误');
				}
			}
		});
		}else{
			return;
		}
 	}
});
var grid_absence_oper = new Ext.grid.GridPanel({
			title : '缺勤确认',
			loadMask : {
				errorMessage : '数据加载中...'
			},
			cm : cm_absence_unconfirmed,
			sm:sm_checkbox_selectAbsence,
			ds : ds_absence_unconfirmed,
			store : ds_absence_unconfirmed,
			region : 'center',
			tbar : [btn_allAbsence_absence,btn_searchSomeone_absence,btn_confirmAbsences_absence,btn_confirmAbsencesToAbsence_absence,btn_absence_eliminate,btn_eliminateOnList_absence],
			bbar : new Ext.PagingToolbar({
						pageSize : 20,
						store : ds_absence_unconfirmed,
						displayInfo : true,
						beforePageText : '第',
						afterPageText : '页-共{0}页',
						displayMsg : '显示{0} - {1} 条  共 {2} 条',
						emptyMsg : "没有记录"
					})
		});
var abId=new Array();
var abDf=new Array();
var selections=grid_absence_oper.getSelectionModel().getSelections();
/*
grid_absence_oper.on('click',function(){
	var selections=grid_absence_oper.getSelectionModel().getSelections();
	selections=grid_absence_oper.getSelectionModel().getSelections();
	 var hd_checker = grid_absence_oper.getEl().select('div.x-grid3-hd-checker');  
    alert(hd_checker);
	    alert(selections.length);
	if(selections.length>0){
		for(var i=0;i<selections.length;i++){
			abId[i]=selections[i].get("absencerId"); 
			abDf[i]=selections[i].get("dateHalf");
		}
	}else{
		return;
	}
	alert(selections.length);
});*/
ds_absence_unconfirmed.on('datachanged',autoCheckGridHead);
ds_absence_unconfirmed.on('load',dd);
function dd(){
	sm_checkbox_selectAbsence.clearSelections();
}
function autoCheckGridHead(){
	var hd_checker = grid_absence_oper.getEl().select('div.x-grid3-hd-checker');  
    var hd = hd_checker.first(); 
    if(hd != null){ 
    	if(selections.length != grid_absence_oper.getStore().getCount()){ 
                //清空表格头的checkBox  
        	if(hd.hasClass('x-grid3-hd-checker-on')){
            	hd.removeClass('x-grid3-hd-checker-on');    
			    //x-grid3-hd-checker-on
                //grid_taskQueryPop.getSelectionModel().clearSelections();
             }
         }else{
             if(grid_absence_oper.getStore().getCount() == 0){ //没有记录的话清空;
              return;
             }
             hd.addClass('x-grid3-hd-checker-on');
                grid_absence_oper.getSelectionModel().selectAll();
            }
        }
 }
ds_absence_unconfirmed.load({params : {	start : 0,	limit : 20} });
var view_absence = {
	id : 'attendanceadmin-operate',
	border : false,
	layout : 'border',
	items : [grid_absence_oper]
};
Ext.getCmp('content-panel').add(view_absence);
Ext.getCmp('content-panel').layout.setActiveItem('attendanceadmin-operate');